home *** CD-ROM | disk | FTP | other *** search
- {$U20}
- PROGRAM GET_BIOS_PARM_BLOCK;
- var
- result,i,disk,addrbpb:integer;
- filler,buffer:long_integer;
- sector,track,side,cnt,device:integer;
- stackaddr:long_integer;
- {$I B:\include.pas\cursor.inc}
- {$I B:\include.pas\peekpoke.inc}
- function super(addr:long_integer): long_integer;
- gemdos($20);
- FUNCTION GETBPB(DISK:INTEGER):integer;
- bios(7);
- function floprd(buffer,filler:long_integer;
- device,sector,track,side,cnt:integer):integer;
- xbios(8);
- function malloc(size:long_integer):long_integer;
- gemdos($48);
- BEGIN
- stackaddr := super(0);
- buffer := malloc (1024);
- buffer := buffer & $ffffff00;
- clrscr;
- writeln('The buffer address before adjustment was ',buffer,' ',buffer:0:h);
- writeln('enter the disk to access: 0 = disk A, 1 = disk B : ');
- readln(disk);
- addrbpb := getbpb(0);
- writeln(' The Bios Parameter Block address is - ',addrbpb,' ',addrbpb:0:h);
- writeln(' The Buffer address is - ',buffer,' ',buffer:0:h);
- result := floprd (buffer,0,0,2,0,0,1);
- writeln(buffer,' After the read sector');
- writeln;writeln;
- writeln('the first three bytes are ');
- for I := 0 to 2 do
- write(peek(buffer + I):0:h,' ');
- readln;
- stackaddr := super(stackaddr);
- end.